/**
 * API接口管理文件
 * 统一管理项目中所有的接口
 */

const { get, post, put, del, uploadFile, APP_ID } = require('./request');

// 用户相关接口
const userApi = {
  // 微信登录
  wxLogin: (data) => {
    return get(`/login/${APP_ID}`, data);
  },
  
  // 登录
  login: (data) => post('/user/login', data),
  
  // 获取用户信息
  getUserInfo: () => get('/user/info'),
  
  // 更新用户信息
  updateUserInfo: (data) => put('/user/info', data),
  
  // 上传头像
  uploadAvatar: (filePath) => uploadFile('/uploadAvatar', filePath, 'avatar')
};

// 文件相关接口
const fileApi = {
  // 上传文件
  upload: (filePath, fileName, openId, signModel = 1, options = {}) => uploadFile('/uploadFile', filePath, 'file', { 
    fileName: fileName,
    openId: openId,
    signModel: signModel
  }, options)
};

// 文章相关接口
const articleApi = {
  // 获取文章列表
  getList: (params, options = {}) => post('/articleList', params, options),
  // 更新文章信息（如标题）
  updateArticle: (data) => post('/updateArticle', data),
  // 删除文章
  deleteArticle: (data) => post('/deleteArticle', data),
  // 获取文章图片
  getArticleImg: (data) => post('/getArticleImg', data, { autoSaveOpenId: false }),
  // 获取签署信息列表
  getSignInfo: (articleId) => get(`/signinfo/${articleId}`),
  // 上传轨迹数据
  uploadPath: (data) => post('/uploadPath', data),
  // 获取文章模型
  articleModel: (params, options = {}) => post('/articleModel', params || {}, options),
  // 导出文档
  export: (data) => post('/export', data, { autoSaveOpenId: false })
};

// 课程相关接口
const courseApi = {
  // 获取课程列表
  getCourseList: (params) => get('/courses', params),
  
  // 获取课程详情
  getCourseDetail: (id) => get(`/courses/${id}`),
  
  // 收藏/取消收藏课程
  toggleFavorite: (id, status) => post(`/courses/${id}/favorite`, { status })
};

// 订单相关接口
const orderApi = {
  // 创建订单
  createOrder: (data) => post('/orders', data),
  
  // 获取订单列表
  getOrderList: (params) => get('/orders', params),
  
  // 获取订单详情
  getOrderDetail: (id) => get(`/orders/${id}`),
  
  // 取消订单
  cancelOrder: (id) => post(`/orders/${id}/cancel`)
};

// 系统相关接口
const systemApi = {
  // 获取系统配置
  getConfig: () => get('/system/config'),
  
  // 获取轮播图
  getBanners: () => get('/system/banners'),
  
  // 反馈意见
  submitFeedback: (data) => post('/system/feedback', data)
};

// 导出所有接口
module.exports = {
  user: userApi,
  file: fileApi,
  article: articleApi,
  course: courseApi,
  order: orderApi,
  system: systemApi
}; 